package com.woniuxy.service;

import com.woniuxy.entity.dto.operations.CostRulesDetailDTO;
import com.woniuxy.entity.dto.operations.CostRulesDisplayDTO;
import com.woniuxy.util.PageParam;
import com.woniuxy.util.ResponseData;

/**
 * @BelongsProject: charging-management-platform
 * @BelongsPackage: com.woniuxy.service
 * @Author: Quan
 * @Date: 2025/4/3 14:18
 */
public interface CostRulesService {
	
	/**
	 * @Description: 获取全部的收费阶段规则
	 * @Param: []
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/3
	 */
	ResponseData<?> getChargingStage();

	/** 
	 * @Description: 将上述的描述，名称等内容加入cost_rules数据库中，将List中的规则列表加入 bind_cost_and_type_rules中
	 * @Param: [costRulesDetailDTO]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	ResponseData<?> addCostRules(CostRulesDetailDTO costRulesDetailDTO);

	/**
	 * @Description: 进行条件查询并且返回到页面中
	 * @Param: [pageParam]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	ResponseData<?> queryAll(PageParam<CostRulesDisplayDTO> pageParam);
 
	/** 
	 * @Description: 通过对应的cost_rule中的id对数据库中的进行查询
	 * @Param: [id]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	ResponseData<?> queryById(Long id);

	/**
	 * @Description: 通过id进行删除
	 * @Param: [id]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	ResponseData<?> deleteById(Long id);

	/**
	 * @Description: 通过id对数据的状态进行更新，如果是禁用状态，就改为启用状态，如果是启用状态就改为禁用状态
	 * @Param: [costRulesService]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	ResponseData<?> updateCostRulesCondition(CostRulesDetailDTO costRulesService);

	/**
	 * @Description: 更新cost_rule中的内容，对应id,
	 * @Param: [costRulesDetailDTO]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/6
	 */
	ResponseData<?> updateCostRules(CostRulesDetailDTO costRulesDetailDTO);
}
